]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
tools/toolbox: Small refactor
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 4 Oct 2024 11:10:35 +0000 (13:10 +0200)
committerMarge Bot <marge-bot@gnome.org>
Wed, 9 Oct 2024 11:30:16 +0000 (11:30 +0000)
Handing the various options to different meson commands in meson-build
gets a bit tedious. Instead of handling them all on the toplevel,
split out *_command() functions that generate the commandline for
the corresponding meson command.

That way, options are handled locally where they matter, which
makes future changes and additions a bit easier.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3497>

tools/toolbox/meson-build.sh

index fc17cb70ecb6777e9f2faa2afb04caed4c2aa923..cd9869d5c4229aa0df076da5fbe2bb9aef6cd23b 100755 (executable)
@@ -37,9 +37,28 @@ find_toplevel() {
   done
 }
 
-needs_reconfigure() {
-  [[ ${#MESON_OPTIONS[*]} > 0 ]] &&
-  [[ -d $BUILD_DIR ]]
+setup_command() {
+  if [[ ${#MESON_OPTIONS[*]} > 0 && -d $BUILD_DIR ]]; then
+    RECONFIGURE=--reconfigure
+  fi
+
+  echo -n "meson setup --prefix=/usr $RECONFIGURE $WIPE ${MESON_OPTIONS[*]} $BUILD_DIR"
+}
+
+compile_command() {
+  echo -n "meson compile -C $BUILD_DIR"
+}
+
+install_command() {
+  echo -n "sudo meson install -C $BUILD_DIR"
+}
+
+dist_command() {
+  if [[ $RUN_DIST ]]; then
+    echo -n "meson dist -C $BUILD_DIR --include-subprojects"
+  else
+    echo -n :
+  fi
 }
 
 # load defaults
@@ -100,16 +119,12 @@ while true; do
   esac
 done
 
-find_toplevel
-
 BUILD_DIR=build-$TOOLBOX
-[[ $RUN_DIST ]] && DIST="meson dist -C $BUILD_DIR --include-subprojects" || DIST=:
 
-needs_reconfigure && RECONFIGURE=--reconfigure
+find_toplevel
 
 toolbox run --container $TOOLBOX sh -c "
-  meson setup --prefix=/usr $RECONFIGURE $WIPE ${MESON_OPTIONS[*]} $BUILD_DIR &&
-  meson compile -C $BUILD_DIR &&
-  sudo meson install -C $BUILD_DIR &&
-  $DIST
-"
+  $(setup_command) &&
+  $(compile_command) &&
+  $(install_command) &&
+  $(dist_command)"